/*
Authors: Eli Yucht 300388949 and Lior Fass 300069705
Project: Hamming
Description: Sender class:
				1. read from input file
				2. encode it with hamming
				3. send it via TCP socket to the channel
				4. wait and print response from receiver
*/

#ifndef SENDER_H
#define SENDER_H

#define NUM_OF_ARGS 3


#define _CRT_SECURE_NO_WARNINGS


#include <iostream>
#include "socket_tools.h"
#include "Bytes_Manipulation.h"
#include "Hamming_EDM.h"

using namespace std;

// sender class declaration
class Sender
{
public:
	Sender();
	int Init(int argc, char *argv[]);
	int Run();
	~Sender();

private:
	FILE * file_p;
	SOCKET sender_socket;
	
	int Check_Arguments(int argc, char *argv[]);
	int Read_File_Encode_Send();
	int Get_Response_From_Receiver();
};



#endif //SENDER_H